The term “ray tracing” describes a technique for synthesizing photorealistic images by identifying all light paths that connect light sources with cameras and summing up these contributions. The simulation traces rays along the line of sight to determine visibility, and traces rays from the light sources in order to determine illumination.
Ray tracing has become mainstream in motion pictures and other applications. However, current ray tracing techniques suffer from a number of known limitations and weaknesses, including numerical problems, limited capabilities for processing dynamic scenes, slow setup of acceleration data structures, and large memory footprints. Thus, current ray tracing techniques lack the capability to deal efficiently with fully animated scenes, such as wind blowing through a forest or a person's hair. Overcoming the limitations of current ray tracing systems would also enable the rendering of, for example, higher quality motion blur in movie productions.
Current attempts to improve the performance of ray tracing systems have fallen short for a number of reasons. For example, current real-time ray tracing systems generally use 3D-trees as their acceleration structure, which are based on axis-aligned binary space partitions. Because the main focus of these systems is on rendering static scenes, they typically fail to address the significant amount of setup time required to construct the required data structures in connection with fully animated scenes.
Along these lines, one known approach seeks to build efficient 3D-trees and develop a technique able to shorten the time needed to traverse the tree. However, it can be shown that in common situations the expected memory requirement for the system increases quadratically with an increase in the number of objects to be ray-traced.
It would be desirable to provide improved and more efficient methods, systems, apparatus, devices and software program/code products relating to ray tracing.
More particularly, photorealistic image synthesis can be described by a path integral. This integral is numerically approximated by summing up contributions of transport paths that connect light sources and sensors, e.g., a camera, a human eye, or the like. The paths are trajectories of Markov processes, the edges of which are straight lines along rays of light and the vertices of which are light-scattering events.
Accordingly, it would be desirable to provide methods, systems, apparatus, devices and software program/code products that can accelerate the simulation of light transport, provide techniques and data structures to efficiently trace rays, and allow the better approximation of the distribution of light by using quasi-Monte Carlo techniques to simultaneously simulate an ensemble of paths instead of single trajectories. The present invention, as discussed in detail below, provides such methods, structures, techniques, processes, and technical advantages. The invention, as described below has applications not only in computer graphics, but also in other areas of computer science, mathematics, simulation, and other fields.